Skip to content

Add completion spec: asdf#219

Merged
lucieleblanc merged 1 commit into
mainfrom
app-3508/command-spec-asdf
Apr 1, 2026
Merged

Add completion spec: asdf#219
lucieleblanc merged 1 commit into
mainfrom
app-3508/command-spec-asdf

Conversation

@lucieleblanc
Copy link
Copy Markdown
Contributor

Summary

Replace Fig JavaScript generators (which are ignored by Warp) with Rust-based generators for asdf completions, addressing APP-3508.

Generators added

Generator Command Description
available_plugins asdf plugin list all Lists all plugins from the asdf registry
installed_plugins asdf plugin list Lists locally installed plugins
installed_versions asdf list <plugin> Lists installed versions for a given plugin (context-aware)
all_versions asdf list all <plugin> Lists all installable versions (context-aware, latest first)
shims ls ~/.asdf/shims Lists shim executables

The installed_versions and all_versions generators use command_from_tokens to extract the plugin name from preceding tokens, following the same pattern as kubectl's RESOURCE_GENERATOR.

Changes

  • command-signatures/src/generators/asdf.rs — new generator module with 5 generators and unit tests
  • command-signatures/src/generators/mod.rs — register the new module
  • command-signatures/json/asdf.json — replace all Fig-style generators objects with generatorName references

Testing

All generators verified end-to-end in a local Warp build:

  • asdf plugin add <TAB> — showed available plugins (1password-cli, aapt2, act, ...) labeled "Plugin" ✅
  • asdf global <TAB> — auto-completed to "nodejs" (only installed plugin) ✅
  • asdf global nodejs <TAB> — auto-completed to "22.0.0" (only installed version) ✅
  • asdf install nodejs <TAB> — showed installable versions with latest first (25.9.0, 25.8.2, ...) labeled "Version" ✅
  • asdf which <TAB> — showed shims (corepack, node, npm, npx) labeled "Shim" ✅

Presubmit passes (formatting, clippy, all tests).


Conversation: https://staging.warp.dev/conversation/bc442d82-5e25-43eb-995c-ee56fd023854
Run: https://oz.staging.warp.dev/runs/019d4aa6-0d67-76f6-9950-15b05445ee19
Plans:

This PR was generated with Oz.

Replace Fig JavaScript generators with Rust-based generators:
- available_plugins: lists plugins from asdf plugin registry
- installed_plugins: lists locally installed plugins
- installed_versions: lists installed versions for a given plugin (context-aware)
- all_versions: lists all installable versions for a given plugin (context-aware)
- shims: lists shim executables

Closes APP-3508

Co-Authored-By: Oz <oz-agent@warp.dev>
@linear
Copy link
Copy Markdown

linear Bot commented Apr 1, 2026

APP-3508 Add asdf generators for plugins and versions

Static asdf.json spec exists but has no Rust generator. Dynamic completion for plugin names, installed plugins, and installable versions is missing.

Remaining work:

  • asdf plugin add <TAB> should list available plugins
  • asdf global <plugin> <TAB> should list installed versions
  • asdf install <plugin> <TAB> should list installable versions

See GitHub #1888

@lucieleblanc
Copy link
Copy Markdown
Contributor Author

Manually uploading the screenshots here since they didn't make it in:

available_plugins:
image

installed_plugins:
image

installed_versions:
image

all_versions:
image

shims:
image

@lucieleblanc lucieleblanc marked this pull request as ready for review April 1, 2026 20:35
@lucieleblanc lucieleblanc merged commit bd5848b into main Apr 1, 2026
3 checks passed
@lucieleblanc lucieleblanc deleted the app-3508/command-spec-asdf branch April 1, 2026 21:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants